Swarm是docker官方的native cluster方案,实现将Docker的host pool虚拟为一个主机,兼容docker的标准API, 保证了所有可以和docker daemon通信交互的软件,可以无缝的移植和docker swarm集群交互。
Docker的官方文档中提供了多种方式来搭建swarm nodes
官方例子使用docker hub token发现服务
静态文件方式
etcd方式
consul方式
zookeeper方式
静态ip列表方式
ip范围模式匹配方式
本文选1,2 为例介绍
实验环境,
搭建两个机器,实体机或者虚拟机都可以,保证可以和外网通信。
方式1.
1.1创建cluster id
1 | docker run --rm swarm create |
1.2 在每个节点运行 docker daemon,需要以tcp端口监听方式运行
1 | docker -H tcp://0.0.0.0:2375 -d |
在cluster中注册每个节点的ip
1 | docker run -d swarm join --addr= token:// |
1.3 启动swarm manager
1 | docker run -d -p :2375 swarm manage token:// |
1.4 检查集群状态
docker -H tcp:// info
检查集群节点信息
docker run –rm swarm list token://
如下:
1 | Containers: 40 |
方式2:
手工维护,有点麻烦,但是不依赖docker hub外部服务
这里的主要区别是:
2.1 添加节点信息,
1 | $ echo /tmp/my_cluster |
2.2 在每个节点运行 docker daemon, 同1.2
2.3 启动swarm manager
1 | docker run -it -v /tmp/:/mywork -p 6000:2375 swarm manage file:///mywork/my_cluster |
2.4. 检查集群状态
1 | docker -H tcp:// info |
docker run -v /tmp/:/mywork –rm swarm list file:///mywork/my_cluster`
2.5 操作集群,同1.5
参考资料: